package cn.raven.util;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public enum JedisUtil {
    INSTANCE;

    private static JedisPool jedisPool = null;

    static {
        // 1.创建一个连接池配置对象
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        // 1.1.设置最大空闲连接数
        jedisPoolConfig.setMaxIdle(5);
        // 1.2.设置最大连接数
        jedisPoolConfig.setMaxTotal(10);
        // 1.3.设置连接超时时间
        jedisPoolConfig.setMaxWaitMillis(1*5000);
        // 1.4.设置测试连接是否通畅的时机
        jedisPoolConfig.setTestOnBorrow(true);
        // 2.根据连接池配置对象创建连接池对象
        // final GenericObjectPoolConfig poolConfig,
        //	    final String host, int port, int timeout, final String password
        jedisPool = new JedisPool(jedisPoolConfig, "127.0.0.1", 6379, 1 * 3000, "123456");
    }

    public Jedis getJedis(){
        if (jedisPool != null){
            return jedisPool.getResource();
        }else {
            return null;
        }
    }

}
